-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[APINotes] Add support for handling Clang modules carrying all versions of APINotes #75893
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
09a9578
to
5970e0f
Compare
swiftlang/llvm-project#9102 |
d6778a6
to
f8bc917
Compare
f8bc917
to
c68a6a0
Compare
1 similar comment
c68a6a0
to
ab95963
Compare
3ca50b6
to
dceacdd
Compare
dceacdd
to
2e00d70
Compare
1 similar comment
2e00d70
to
81aefd4
Compare
@swift-ci test |
81aefd4
to
f7391d8
Compare
78558ba
to
b7cc827
Compare
@swift-ci test |
b7cc827
to
7eab626
Compare
@swift-ci test |
1 similar comment
@swift-ci test |
7eab626
to
bd0b499
Compare
@swift-ci test |
bd0b499
to
79322a4
Compare
@swift-ci test |
…ns of APINotes Controlled from Swift with '-version-independent-apinotes', which, for the underlying Clang invocation enables '-fswift-version-independent-apinotes', results in PCMs which aggregate all versioned APINotes wrapped in a 'SwiftVersionedAttr', with the intent to have the client pick and apply only those that match its current Swift version, discarding the rest. This change introduces the configuration flags for this mode as well as the corresponding logic at the beginning of `importDeclImpl` to canonicalize versioned attributes, i.e. select the appropriate attributes for the current target and discard the rest.
79322a4
to
b60bc39
Compare
@swift-ci smoke test |
egorzhdan
approved these changes
Jul 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This approach makes sense to me, thank you!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Controlled from Swift with
-version-independent-apinotes
, which, for the underlying Clang invocation enables-fswift-version-independent-apinotes
, results in PCMs which aggregate all versioned APINotes wrapped in aSwiftVersionedAttr
, with the intent to have the client pick and apply only those that match its current Swift version, discarding the rest.Adapts Clang-side work as shown in swiftlang/llvm-project#9102.